import cv2 as cv
img = cv.imread(r'Lena.jpg')

print('第一题')
cv.imshow('Lena', img)

cv.waitKey()
cv.destroyAllWindows()

print('第二题')
print('RGB分量')
print('B分量')
cv.imshow('Lena_B', img[:, :, 0])
print('G分量')
cv.imshow('Lena_G', img[:, :, 1])
print('R分量')
cv.imshow('Lena_R', img[:, :, 2])
cv.waitKey()
cv.destroyAllWindows()

print('HSV分量')
hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)
print('H分量')
cv.imshow('Lena_Hue', hsv[:, :, 0])
print('S分量')
cv.imshow('Lena_Saturation', hsv[:, :, 1])
print('V分量')
cv.imshow('Lena_Value', hsv[:, :, 2])
cv.waitKey()
cv.destroyAllWindows()

explain = '''
比较说明：
RGB颜色空间把图片中的红，绿，蓝三原色分离，通常（纯色画面除外）每一个通道都包含了图片的部分特征细节信息。
即使其中一个甚至两个通道的信息丢失，依然可以有限度地观察图片细节。
HSV颜色空间把图片的色调，饱和度和亮度分别提取，其中H和S通道包含了图片的色彩信息，V通道包含了亮度信息。一般单纯从V通道可以看到大部分的特征细节。
从图片识别和处理方面看，RGB颜色空间通过对比三个通道，可以判断图片的整体色调。而HSV颜色空间在指定颜色分割时的作用比较大。
例如从纯色背景中抠图，只要把HS变量混合，划定阈值，就可以把前景和背景颜色区分。
'''

print(explain)
